package com.yuanshi.food.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 管理员表（存储后台管理员信息，手册“管理员权限隔离”要求）
 * @TableName admin
 */
@TableName(value ="admin")
@Data
public class Admin {
    /**
     * 管理员ID（主键）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务标识（固定42位字符串）
     */
    @TableField(value = "biz_code")
    private String bizCode;

    /**
     * 用户名（唯一，字母+数字组合，手册“用户名规范”要求）
     */
    @TableField(value = "username")
    private String username;

    /**
     * 密码（BCrypt加密存储，手册“密码安全存储”要求）
     */
    @TableField(value = "password")
    private String password;

    /**
     * 真实姓名（管理员实名信息）
     */
    @TableField(value = "real_name")
    private String realName;

    /**
     * 手机号（用于登录验证、密码找回）
     */
    @TableField(value = "phone")
    private String phone;

    /**
     * 角色ID（关联role.id，手册“权限RBAC模型”要求）
     */
    @TableField(value = "role_id")
    private Long roleId;

    /**
     * 管理员状态：0-禁用，1-正常（枚举化状态）
     */
    @TableField(value = "admin_status")
    private Object adminStatus;

    /**
     * 最后登录时间（手册“登录日志可追溯”要求）
     */
    @TableField(value = "last_login_time")
    private Date lastLoginTime;

    /**
     * 逻辑删除：0-未删除，1-已删除
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;
}